Oftentimes, it is the case that when a computing system requires a diagnostic or maintenance procedure, keystrokes must be entered into the computing system. For example, to update a setting in the basic input/output system (BIOS) of a computing system, a user must typically be present at the system to enter keystrokes into the BIOS screens. Of course, other sorts of diagnostic or maintenance procedures require the same form of keystroke input.
In the context of a large network of computers, such as in a workplace environment with many offices, it may be cumbersome and expensive to generate even simple keystroke input to a computing system. In such circumstances, information technology (IT) professionals may physically travel to the computer in need of diagnostics or maintenance in order to use its keyboard and monitor. This option is time consuming, and may be expensive. Alternatively, an IT professional may attempt to telephonically direct a computer user who is physically in the presence of the computer, so that the computer user can enter the keystrokes using the computer's keyboard. Again, this option may be error-prone and time consuming.
To address the aforementioned issue, some computing systems allow for text-mode screen data to be redirected to a serial port, and allow for keystroke data to be redirected from the serial port. FIG. 1 depicts such a computing system 100. The computing system 100 includes a central processing unit (CPU) 102, which redirects data (such as text-mode screen data) through a universal asynchronous receiver/transmitter (UART) 104 to a baseboard management controller 106. A baseboard management controller 106 is a system that controls environmental variables of the computing system 100 (e.g., monitors and controls the temperature of the computing system 100). The baseboard management controller 106 includes a microcontroller 108, which is coupled to another UART 110. Thus, the CPU 102 may redirect data through the UART 104, which serializes the data, which travels through a switch 112 (further discussion of the switch 112 follows) that directs the data through another UART 110. The second UART 110 deserializes the data, and communicates the data to the microcontroller 108 on the baseboard management controller 106. Thus, the microcontroller 108 may communicate text-mode screen data to a local area network (LAN) 114 via a network interface card (NIC) 116. In reverse fashion, keystroke data may be received via the LAN 114, and redirected to the CPU 102 via the UARTs 104 and 110.
The switch 112 may direct data from the CPU 102 to either the microcontroller 108 on the baseboard management controller 106 or to a serial communications port connector (COM port connector) 118. The COM port connector 118 is a physical arrangement of pins (such as a DB-9 or DB-25 connector, used with an RS-232 serial port) usually accessible from the exterior of the computing system 100. The state of the switch 112 is under the control of the microcontroller 108. When the switch 112 provides connectivity to the COM port 118, the COM port 118 may be utilized as any ordinary COM port 118 would otherwise be used. When the switch 112 provides connectivity to the microcontroller 108 (via the UART 110), the COM port is unavailable for use. Therefore, the COM port 118 is unavailable for use when the CPU 102 is redirecting text-mode screen data or keystroke data through the baseboard management controller 106.
The aforementioned scheme exhibits certain shortcomings. The inclusion of the switch 112 adds complexity and cost for the design of the baseboard management controller 106. Moreover, the need to manage the state of the switch 112 adds complexity to the software/firmware executed by the microcontroller 108. Additionally, data redirected from the CPU 102 to the microcontroller 108 is limited in data rate by the baud rate supported by the UARTs 104 and 110.
For the foregoing reasons, it is evident that there exists a need for a redirection scheme that addresses one or more of the aforementioned shortcomings.